Customized channel

ABSTRACT

Various arrangements generating a customized channel are presented. A customized channel may be generated for a user. The programming for the customized channel may be gathered from different sources. The programming may be selected and scheduled based on user preferences, interests, and viewing habits of the user. The user viewing habits and preferences for programming may be used to refine the schedule and programming of the customized channel.

BACKGROUND

Television entertainment systems may have access to a large number ofcontent including broadcast stations, on demand programming, internettelevision, and recorded programming. Users may have to search andnavigate hundreds of broadcast channels and other sources to findprogramming that matches their interests or mood. Users are often forcedto navigate from channel to channel or from source to source to selectthe desired content. Due to the large number of options many users mayspend more time trying to locate or decide what programming or contentto watch than watching the content. What is needed is a better way ofpresenting content to users that is pertinent to the user's interestsand viewing habits.

SUMMARY

A customized channel may be generated for a user. Programming for thecustomized channel may be gathered from different sources. Theprogramming may be selected and scheduled based on user preferences,interests, and viewing habits of the user. The user viewing habits andpreferences for programming may be used to refine the schedule andprogramming of the customized channel.

In some embodiments, a television receiver configured to output acustomized channel is presented. The television receiver may include atuner configured to receive programming content. The television receivermay include a channel engine configured to schedule programming contentfor the customized channel. The television receiver may include one ormore processors and a non-transitory computer-readable storage mediumcommunicatively coupled with and readable by the one or more processorsand having stored therein processor-readable instructions. When theinstructions are executed by the one or more processors they may causethe one or more processors to determine a programming preference of auser. The instructions may further cause the one or more processors toidentify a set of programming content from one or more programmingsources based at least in part on the preference of the user andschedule, using the channel engine, the set of programming content forviewing on the customized channel. The instructions may further causethe one or more processors to schedule, using the channel engine,additional programming content for a first time slot of the customizedchannel. After scheduling of additional programming, the first time slotof the customized channel may include at least two scheduledprogramming. The instructions may also cause the one or more processorsto receive, from the user, an indication to select one programmingcontent from the two scheduled programs for viewing during the firsttime slot of the customized channel and update the programmingpreference based on the indication. In embodiments the customizedchannel may be a channel not previously available and may be onlyavailable to the user. In embodiments the two scheduled programs mayinclude programming content of at least two different types. In somecases the first time slot may be at a time of day when the preference ofthe user indicates an uncertainty in the type of programming content. Inother cases the first time slot may be randomly selected. In someembodiments programming sources may include on-demand video. Theprogramming content and the additional programming content may bescheduled to maximize a user enjoyment score. The user enjoyment scoremay be computed based on a score assigned to each scheduled programmingcontent and time slot of the customized channel.

In some embodiments a method for scheduling programming content ispresented. The method may include determining a programming preferenceof a user and identifying a set of programming content from one or moreprogramming sources according to the programming preference of the user.The method may further include scheduling the set of programming contentfor viewing on a customized channel and scheduling additionalprogramming content for a first time slot of the customized channel,wherein after scheduling of additional programming, the first time slotof the customized channel may include at least two scheduledprogramming. The method may also include receiving, from the user, anindication to select one programming content from the two scheduledprograms for viewing during the first time slot of the customizedchannel and updating the programming preference based on the indication.

In some embodiments a non-transitory processor-readable medium forscheduling programming content is presented. The non-transitoryprocessor-readable medium may include processor-readable instructionsconfigured to cause one or more processors to determine a programmingpreference of a user and identify a set of programming content from oneor more programming sources according to the programming preference ofthe user. The instructions may also be configured to cause one or moreprocessors to schedule the set of programming content for viewing on acustomized channel and schedule additional programming content for afirst time slot of the customized channel, wherein after scheduling ofadditional programming, the first time slot of the customized channelincludes at least two scheduled programming. The non-transitoryprocessor-readable medium may include processor-readable instructionsconfigured to cause one or more processors to also receive, from theuser, an indication to select one programming content from two scheduledprogramming for viewing during the first time slot of the customizedchannel and update the programming preference based on the indication.

BRIEF DESCRIPTION OF THE DRAWINGS

A further understanding of the nature and advantages of variousembodiments may be realized by reference to the following figures. Inthe appended figures, similar components or features may have the samereference label. Further, various components of the same type may bedistinguished by following the reference label by a dash and a secondlabel that distinguishes among the similar components. If only the firstreference label is used in the specification, the description isapplicable to any one of the similar components having the same firstreference label irrespective of the second reference label.

FIG. 1 illustrates an embodiment of a satellite television distributionsystem.

FIG. 2 illustrates an embodiment of a television receiver configured togenerate a customized channel.

FIG. 3 illustrates an embodiment of a scheduling scenario for acustomized channel.

FIG. 4 illustrates an embodiment of a scheduling scenario for acustomized channel.

FIGS. 5A and 5B illustrate embodiments of methods for generating aschedule for a customized channel.

FIG. 6 illustrates an embodiment of a method for identifying programmingfor a customized channel based on viewing habits of the user.

FIG. 7A illustrates an embodiment of a method for determining userpreferences by presenting to the user alternative programming.

FIG. 7B illustrates an embodiment of a method for resolvinguncertainties in programming preferences of a user.

FIG. 8 illustrates an embodiment of a computer system.

DETAILED DESCRIPTION

Television entertainment systems, such as satellite based systems, mayhave access to a large number of content. Content may include broadcaststations, on demand programming, recorded programming, streamingprogramming, content from the internet, webcasts, and/or the like.Programming and/or content that a specific user is interested inwatching may be distributed among many different stations, channels,and/or sources. Locating or remembering what programming is available,at what time, and from which source may be a time consuming and/orimpossible task for many users.

For example, a user with an interest in home improvement may prefer towatch a gardening show that is broadcast at 6 PM at a first channel andmay prefer to watch a home renovation show that is broadcast at 7 PM ata second channel. Typically, a user interested in watching the two showsmay be required to manually tune to the two channels. In order to enjoythe two shows the user may be required to remember at what channelsthese programs are available, at what time slots, remember to change thechannel, and the like. The user's task may become more complicated whenthe air time or the channel of the preferred programming changes. Theuser may have to search for the programming or try to locate newprogramming of interest. The problem of locating, scheduling, andkeeping track of preferred programming by a user has become increasinglyfrustrating as more and more programming options, sources, genres, andthe like are added or changed each year. Non-traditional programmingcontent sources such as videos, audio, or podcasts available on-demandfrom the internet may also be viewed through a set-top-box (STB).Internet sourced programming may include millions of individual contentsources of videos, or audio files. To locate internet based contentthrough their STBs user may be forced to perform complex searches andmanually create playlists for the content. Users may often spend moretime locating than watching and enjoying the programming.

In embodiments, programming may be presented to the user such that theuser may not be required to locate and/or navigate to view programmingthat is pertinent to the user's interests. In embodiments, one or morecustomized channels may be generated for a user. Programming and contentthat is pertinent to a user, genre, or interests may be aggregated andpresented to the user in one or more customized channels. Programmingand content may be assembled or stitched together from programming fromone or more sources such as broadcast stations, webcasts, internetsources, and/or the like. Programming and content may be assembled andpresented to the user such that all the programming is available at onecustomized channel. Programming and content may be assembled into onechannel such that the user may not need to change channels, performinternet searches, remember which programming is normally available atwhich channel and at what time.

For example, a customized channel may be generated for the user with aninterest in home improvement programming. A customized channel may becreated that allows a user to view pertinent programming from varioussources such as broadcast channels and/or internet sources. The user mayidentify preferred programming. The preferred programming such as thegardening show from the first channel and the home renovation show fromthe second channel may be available for viewing to the user via thecustomized channel. The customized channel may allow the user to viewtheir preferred programming without the user having to change channelsor search for available programming. For example, the home gardeningshow and the home renovation show may be viewed by the user,sequentially, during the time slots the two shows normally air via thecustomized channel without having to change the channel. Videos relatedto home improvement may be identified and scheduled for viewing via thecustomized channel without requiring the user to search for videos andinitiate playback of the videos. The videos and/or other contentrelevant to home improvement may be available for viewing via acustomized channel whenever the user tunes to the channel withoutrequiring the user to initiate playback.

In embodiments, the customized channel may appear as one of the channelsor programming sources available to the user via the STB. The customizedchannel may have programming data in the electronic programming guide.The programming data may correspond to the programming scheduled to beavailable via the customized channel. From the user's point of view, thecustomized channel may appear like another television channel on theSTB, but in reality that television channel may have been generatedusing content from multiple sources and the content may be based oninformation gathered about that user's preferences and/or viewinghabits. The receiver may include an indicator (e.g. an icon or a logo)in the EPG to flag those channels that have been customized for theuser.

Generating a customized channel for a user may include aspects ofdetermining and identifying available programming of interest to theuser and scheduling an arrangement of the identified programming on thecustomized channel.

In some embodiments the user may specify preferred programming orcontent. The user may identify specific shows, genres, actors, and/ortypes of programming. Based on the programming identified by the user acustomized channel may be populated with programming from differentsources. In embodiments, the customized channel may assemble and stitchtogether programming from one or more different sources available to theuser.

Programming identified by the user may not be enough to completely fillthe time slots available on the customized channel. In some embodiments,additional programming for the customized channel may be automaticallydetermined based on the identified programming, viewing habits, userpreference settings, and/or the like.

For example, a user may identify two preferred shows related togardening and home renovation. Based on the identified shows, additionalprogramming may be determined that may match the interests of the user.Other shows or programming that may be available through the set-top-boxmay be searched to determine similar programming. The identifiedprogramming may be added to the customized channel. The customizedchannel may gather programming from one or more different sourcesallowing the user to access programming related to home improvement viaone customized channel.

In embodiments a customized channel may be configured to only includeprogramming from broadcast channels. Some customized channels may beconfigured to only include programming from internet sources. Internetsources may be limited to specific websites, content providers, and/orthe like. Some customized channels may be configured to only includeprogramming that has been recorded on the user's STB. Other customizedchannels may be configured to include programming from multiple sourcesand may include content from one or more of broadcast stations, recordedprogramming, and/or programming available through the internet.

Programming identified for the customized channel may be scheduled forspecific time slots of the customized channel. Scheduling of programmingcontent may be restricted by programming content constraints, userpreferences, time constraints, equipment limitations, and/or the like.

For example, in some embodiments, the programming on the customizedchannel may be restricted to be available for viewing on the customizedchannel only at a time slot corresponding to the original air time ofthe programming. For example, if the preferred gardening show is onlynormally viewable at 6 PM, the customized channel may be constrained toschedule the show for the 6 PM time slot.

In some embodiments, the programming available at the customized channelmay be available for viewing at a different time than originally aired.The customized channel make take advantage of the recordingfunctionality of a set-top-box to record and play back programming atdifferent time slots than originally aired. Recorded functionality maybe used to buffer programming or generate a custom viewing schedule forthe user.

In embodiments, programming for the customized channel may be availablefor viewing by the user at a different time than originally aired.Programming may be recorded and may be available for viewing on thecustomized channel at a different time slot than originally aired. Theprogramming may be buffered or moved to accommodate scheduling ofpreferred programming. For example, in some cases preferred televisionshows may normally air simultaneously during the same time slot on twodifferent channels. In order for the two programming streams to beviewable on the customized channel, one of the shows may be recordedwhile the other show is available for viewing. The recorded show may beavailable for viewing on the customized channel at a later time.

Some programming content available for the customized channel may beavailable on demand and may be scheduled for any time slot of thecustomized channel. Some video programming from the internet, orprogramming recorded on the STB may have no schedule constraints.

In embodiments, a scheduler may be used to determine an appropriaterecording and viewing schedule for the customized channel. The recordingand viewing scheduler may take into consideration the set-top-boxresources, user's preferences, copyright constraints, programmingschedules, and/or the like to determine which programming should beincluded in the customized channel at what time slot.

In some embodiments the scheduler may be configured to optimize theprogramming schedule for specific parameters. The scheduler may beconfigured to optimize the programming schedule to maximize the user'sviewing experience. For example, programming may be assigned a scorebased on the preferences of the user, i.e. programming that matches thepreferences and/or interest of the user may be assigned a higher scorethan programming that does not match the user's interests. Time slots ofthe customized channel may also be assigned scores based on the viewinghabits of the user, i.e. time slots for which the user is more likely towatch the channel may be assigned a higher score than those that areseldom watched by the user. A schedule score may be computed by takingthe sum of the product of the time slot score and the score of theprogramming assigned to the time slot for all the time slots. Thescheduler may be configured to arrange the programming on the customizedchannel such that the schedule score is maximized. In some cases thescheduler may be configured to maximize the schedule score within therecording constraints of the set-top-box. The set-top-box may havelimited recording capability such that only a limited number of showsmay be recorded and available on the customized channel at a time slotdifferent than the original airing time slot of the show.

In some embodiments the scheduler may be constrained with specific showsin specific time slots. User preferences may include specificconstraints on some programming that the user desires to view on thecustomized channel in specific time slots. In some embodiments,maximization or optimization may not be possible and “best effort” orsub-optimal algorithms and schedulers may be sufficient.

In embodiments, multiple customized channels may be generated. Adifferent customized channel may be generated for each user, or userprofile on a set-top box. In some embodiments more than one customizedchannel may be generated for each user. A customized channel may becreated for different genres of programming. A user may create onecustomized channel for sports, where only the user's preferred sportsare shown, for example. Another customized channel by the same user mayinclude a channel limited to showing only programming related to homeimprovement. In some embodiments, some or all of the customized channelsmay be configured to always show the same type, class, or genre ofprogramming regardless of the time and/or time of the week. A customizedchannel devoted to home improvement may, for example, only includeprogramming related to home improvement regardless of when the usertunes into the channel.

In some embodiments, one or more of the customized channel may beconfigured with a different type, class, and/or genre of programming fordifferent times of the day, days of the week, seasons, and/or the like.The type of programming may be adapted to the viewing habits orpreferences of the user. A user may, for example, view news shows in themorning on weekdays and drama shows in the evenings. The same user mayprefer to view cartoons on weekend mornings, for example. A singlecustomized channel may be created for the user with the appropriateprogramming scheduled at specific times of day and/or days of the weekaccording to the user's preference and viewing habits. Regardless of thetime of the day or day of the week, a user may tune to a singlecustomized channel to view the appropriate programming that matches theuser's interests and/or preferences eliminating the necessity ofsearching for programming or change channels.

In some embodiments, once a programming schedule is established for acustomized channel the user may not be able to alter or modify theschedule of the programming. The user may be prohibited from skippingprogramming, fast forwarding, or other operations that may normally beprohibited for a typical broadcast channel. Changes to the schedule orpreferences may be effective after a fixed time such as a couple ofhours, or a day or more, after the preferences are made.

In some embodiments, a user may be permitted to fast forward or skipsome programming during some time slots of the customized channel.During some time slots of the customized channel, some programming maybe pre-recorded or streaming allowing fast forwarding, pausing, orskipping some of the programming content. In some cases a scheduledcontent may be dynamically replaced based on the feedback or choice ofthe user. In some embodiments a customized channel may be configured todynamically replace scheduled programming content with alternativecontent based on user input. In some embodiments the user may providefeedback regarding the scheduled programming. Negative feedback mayprompt the STB to locate another available programming content optionfor the time slot. Upon receipt of negative feedback for programming ina time slot of the customized channel the STB may automatically identifyalternative programming content for the time slot and automaticallyreplace the scheduled programming content with the alternative contentthat matches the user's preference and/or viewing habits.

In embodiments, additional information may be available for theprogramming of the customized channel. Information may include dataregarding actors, synopsis, genre, content source, and the like. Theuser may be able to navigate and select additional content related tothe programming and perform actions on the programming offered in thecustomized channel, such as to record the content, fast forward, rewind,play, pause and resume playing.

In some embodiments, the customized channel may be configured to allowthe scheduling of two or more alternative programming content choicesfor one or more of the time slots. For some time slots two or morealternative programming choices may be presented to the user allowingthe user to select one of the alternative programming choices the userwould prefer to view. During the start of the time slot, for example, anotification to the user may be presented allowing the user to selectone of the alternative programming choices. In some cases the user mayrequest a scheduling change by using the remote or menu options.

Alternative programming choices in the customized channel may beselectively positioned at specific time slots or times of the day todetermine a user's mood, preferred content, or determine the user'sviewing preferences. For example, for a customized channel configured toshow different type of content at different times of the day, duringsome of the time slots alternative programming choices may be presentedto the user to determine when to transition from one type of programmingto another. For example, a customized channel may be, based on userpreferences, configured to schedule news shows in the morning and talkshows in the afternoon. However, the exact time when the transition fromone type of programming (e.g. new shows) to another (e.g. talk shows)may change each day, may be based on the mood of the user, and the like.To determine the user's mood the user may be presented with a choice ofprogramming for some time slots in the late morning or early afternoon.The choice of alternative programming may be a choice between a newsshow and a talk show, for example. Based on the user's choice, thedetermination may be made as to the mood of the user and user'spreference for time of transition between types of programming.

In the case of some spontaneous events, such as breaking news, theseevents may be automatically inserted in the customized channel. Thereceiver may prompt the user and let the user decide if the user prefersto watch this event or the one that was originally scheduled. In someembodiments the user may specify settings for spontaneous events. Theuser may specify preferences for the types of events that may be allowedto interrupt the scheduled programming. The user may specify preferencesif the spontaneous events are automatically inserted in to theprogramming or if a notification such as a banner of the event is firstpresented to the user. The user may for example limit spontaneous eventsto weather events, political events, specific channels, and/or the like.

Programming choices may be periodically or randomly inserted to thecustomized channel schedule to determine user preferences for newprogramming choices, learn and adapt to the user's changing preferences,present to the user new programming the user may not be aware of, and/orthe like. Based on user selection of alternative programming choices,the preferences of the user may be continuously or periodically refinedand may be used to refine scheduler parameters.

In addition to or alternatively to tracking user's choice in alternativeprogramming, user feedback may be received based on user's ratings ofthe programming, viewing habits, and the like. User's engagement withscheduled programming may be monitored and used to determine userpreferences and adjust the programming schedule. In some embodiments,the user may be presented with a questionnaire. The questionnaire may bedesigned to directly determine preferred programming. In some cases, thequestionnaire may be designed to deduce viewing habits and preferredprogramming with indirect questions or methods. The questionnaire mayfor example be a game related to the programming. For example, the gamemay be trivia game with questions related to programming or topics ofinterest to the user. The questions may be designed to gauge the user'sengagement with the watched programming. If a user is able to correctlyanswer questions related to watched programming it may be deduced thatthat user has a strong interest in the programming or programming type.The user may be incentivized to participate in the games with rewards.The user may be rewarded with merchandise, money, or other credits basedon how many answers the user answers correctly. Other interactive gamesand interactive questionnaires may be designed to determine the user'sinterests and preferred programming for the customized channel.

In some embodiments the STB may keep track of which programming of thecustomized channel has been watched by the user. Programming that wasnot watched may be rescheduled for a different time slot or on adifferent date if available. In some embodiments, the receiver may keeptrack of the programming offered on the customized channel. Programmingwatched by the user may be assigned a score. The STB may track the scoreof watched programming and may use this data to prioritize futurecustomized schedules. The receiver may take into consideration contenttype, genre, actors, time spent watching the event, and other factors toassign the score. User's activity with respect to fast forwarding,skipping, or rewinding portions of the programming may be further usedto determine the user's engagement and score. A separate score may bemaintained by the STB for the genre, actors, directors, country ororigin or the watched programming. Programming related to the highestscoring actors, directors, genres, and the like may be given schedulingpriority for the user.

In some embodiments some programming content may be available to the STBwithout advertisements or commercials. In embodiments, commercials andadvertisements may be injected into the programming content. Thecommercials may be tailored to the user. Commercials may be determinedand scheduled based in part on the user preferences in programming,viewing habits, current programming being watched, and/or the like.

In embodiments, a customized channel may be generated and maintained bythe STB. Each STB may determine a user's preferences and generate aschedule for a customized channel tailored for the user's preferencesand/or viewing habits. The STB may access programming guide data,meta-data, access external programming data to identify programmingcontent pertinent to the user's interests.

In some embodiments the customized channel may be generated by theservice provider. The service provider may generate and transmit to theSTB a customized channel programming schedule that the STB assemblesinto different programming from different sources. A service providermay have a library of different standard customized channel scheduledefinitions that may be accessed by an STB and selected by a user. Thelibrary of customized channel definitions may include definitions fordifferent genres, regions, and the like. Once selected and activated bya user, the predefined customized channel may be modified by the user ormodified according to user's viewing habits.

In some cases, the customized channel may be generated for a largeraudience and not specifically for an individual user. Customizedchannels may be generated for specific geographic regions, interests,age groups, and the like. In some cases the customized channel may bedetermined by the preferences of a number of people through socialmedia, viewing activity, surveys, voting, and the like.

Customized channels may be implemented in a satellite based televisionsystem, an embodiment of which is illustrated in FIG. 1. The system 100may include: television service provider system 110, satellitetransmitter equipment 120, satellites 130, satellite dish 140,television receiver 150, and display device 160. Alternate embodimentsof satellite television distribution system 100 may include fewer orgreater numbers of components. While only one satellite dish 140,television receiver 150, and display device 160 (collectively referredto as “user equipment”) are illustrated, it should be understood thatmultiple (e.g., tens, thousands, millions) instances of user equipmentmay receive television signals from television service provider system110 via satellites 130.

Television service provider system 110 and satellite transmitterequipment 120 may be operated by a television service provider. Atelevision service provider may distribute television channels,on-demand programming, programming information, and/or othercontent/services to users. Television service provider system 110 mayreceive feeds of one or more television channels from various sources.Such television channels may include multiple television channels thatcontain at least some of the same content (e.g., network affiliates). Todistribute television channels for presentation to users, feeds of thetelevision channels may be relayed to user equipment via multipletelevision distribution satellites. Each satellite may relay multipletransponder streams. Satellite transmitter equipment 120 (120-1, 120-2)may be used to transmit a feed of one or more television channels fromtelevision service provider system 110 to one or more satellites 130.While a single television service provider system 110 and satellitetransmitter equipment 120 are illustrated as part of satellitetelevision distribution system 100, it should be understood thatmultiple instances of transmitter equipment may be used, possiblyscattered geographically, to communicate with satellites 130. Suchmultiple instances of satellite transmitting equipment may communicatewith the same or with different satellites. Different televisionchannels may be transmitted to satellites 130 from different instancesof transmitting equipment. For instance, a different satellite dish ofsatellite transmitter equipment 120 may be used for communication withsatellites in different orbital slots.

Satellites 130 may be configured to receive signals, such as streams oftelevision channels, from one or more satellite uplinks such assatellite transmitter equipment 120. Satellites 130 may relay receivedsignals from satellite transmitter equipment 120 (and/or other satellitetransmitter equipment) to multiple instances of user equipment viatransponder streams. Different frequencies may be used for uplinksignals 170 from transponder streams 180. Satellites 130 may be ingeosynchronous orbit. Each of the transponder streams transmitted bysatellites 130 may contain multiple television channels transmitted aspacketized data. For example, a single transponder stream may be aserial digital packet stream containing multiple television channels.Therefore, packets for multiple television channels may be interspersed.In embodiments a stream of a television channel may be referred to as aprogramming stream. In some cases several television channels may becombined into one stream such as in a transponder stream. In thisdescriptions transponder streams and programming streams may be usedsynonymously.

Multiple satellites 130 may be used to relay television channels fromtelevision service provider system 110 to satellite dish 140. Differenttelevision channels may be carried using different satellites. Differenttelevision channels may also be carried using different transponders ofthe same satellite; thus, such television channels may be transmitted atdifferent frequencies and/or different frequency ranges. As an example,a first and second television channel may be relayed via a firsttransponder of satellite 130-1. A third, fourth, and fifth televisionchannel may be relayed via a different satellite or a differenttransponder of the same satellite relaying a transponder stream at adifferent frequency. A transponder stream transmitted by a particulartransponder of a particular satellite may include a finite number oftelevision channels, such as seven. Accordingly, if many televisionchannels are to be made available for viewing and recording, multipletransponder streams may be necessary to transmit all of the televisionchannels to the instances of user equipment. Each transponder stream maybe able to carry a finite amount of data. As such, the number oftelevision channels that can be included in a particular transponderstream may be at least partially dependent on the resolution of thevideo of the television channel. For example, a transponder stream maybe able to carry seven or eight television channels at a highresolution, but may be able to carry dozens, fifty, a hundred, twohundred, or some other number of television channels at reducedresolutions.

Satellite dish 140 may be a piece of user equipment that is used toreceive transponder streams from one or more satellites, such assatellites 130. Satellite dish 140 may be provided to a subscriber foruse on a subscription basis to receive television channels provided bythe television service provider system 110, satellite transmitterequipment 120, and/or satellites 130. Satellite dish 140, which mayinclude one or more low noise blocks (LNBs), may be configured toreceive transponder streams from multiple satellites and/or multipletransponders of the same satellite. Satellite dish 140 may be configuredto receive television channels via transponder streams on multiplefrequencies. Based on the characteristics of television receiver 150and/or satellite dish 140, it may only be possible to capturetransponder streams from a limited number of transponders concurrently.For example, a tuner of television receiver 150 may only be able to tuneto a single transponder stream from a transponder of a single satelliteat a given time. The tuner can then be re-tuned to another transponderof the same or a different satellite. A television receiver 150 havingmultiple tuners may allow for multiple transponder streams to bereceived at the same time.

In communication with satellite dish 140 may be one or more televisionreceivers. Television receivers may be configured to decode signalsreceived from satellites 130 via satellite dish 140 for output andpresentation via a display device, such as display device 160. Atelevision receiver may be incorporated as part of a television or maybe part of a separate device, commonly referred to as a set-top box(STB). Television receiver 150 may decode signals received via satellitedish 140 and provide an output to display device 160. FIG. 2 providesadditional detail of various embodiments of a television receiver. WhileFIG. 1 illustrates an embodiment of television receiver 150 as separatefrom display device 160, it should be understood that, in otherembodiments, similar functions may be performed by a television receiverintegrated with display device 160.

The system 100 may include the capability to receive programming fromthe service provider 110 via the satellite dish 140 or via a Network190. Programming content may be accessed from additional sources and mayinclude internet programming 195 that may be accessible via the network190 and/or the satellite dish 140. The STB may include a CustomizedChannel Engine 211 that may be used to schedule and assemble programmingfor a customized channel tailored to a user. Customized channeldefinitions may also be generated by the service provider. A serviceprovider may generate channel definitions (e.g. metadata definitions ofprogramming) that may be used by a receiver to assemble a customizedchannel. In some instances the service provider 110 may include aCustomized Channel Monitor 196. The monitor 196 may monitor schedules ofcustomized channels from different users to determine programmingtrends, geographic trends, or other data related to popularity ofprogramming, viewer habits, and/or the like. The receiver maycommunicate information regarding the details of customized channels tothe provider through a return channel (e.g., via internet).

Display device 160 may be used to present video and/or audio decoded andoutput by television receiver 150. Television receiver 150 may alsooutput a display of one or more interfaces to display device 160, suchas an electronic programming guide (EPG). In many embodiments, displaydevice 160 is a television. Display device 160 may also be a monitor,computer, or some other device configured to display video and,possibly, play audio.

In FIG. 1 uplink signal 170-1 represents a signal between satellitetransmitter equipment 120-1 and satellite 130-1. Uplink signal 170-2represents a signal between satellite transmitter equipment 120-2 andsatellite 130-2. Each of uplink signals 170 may contain streams of oneor more different television channels. For example, uplink signal 170-1may contain a first group of television channels, while uplink signal170-2 contains a second group of television channels. Each of thesetelevision channels may be scrambled such that unauthorized persons areprevented from accessing the television channels.

In FIG. 1 transponder stream 180-1 represents a transponder streamsignal between satellite 130-1 and satellite dish 140. Transponderstream 180-2 represents a transponder stream signal between satellite130-2 and satellite dish 140. Each of transponder streams 180 maycontain one or more different television channels, which may be at leastpartially scrambled. For example, transponder stream 180-1 may be afirst transponder stream containing a first group of televisionchannels, while transponder stream 180-2 may be a second transponderstream containing a different group of television channels. When atelevision channel is received as part of a transponder stream and isdecoded and output to display device 160 (rather than first storing thetelevision channel to a storage medium as part of DVR functionality thenlater outputting the television channel from the storage medium), thetelevision channel may be considered to be viewed “live.”

FIG. 1 illustrates transponder stream 180-1 and transponder stream 180-2being received by satellite dish 140 and distributed to televisionreceiver 150. For a first group of television channels, satellite dish140 may receive transponder stream 180-1 and for a second group ofchannels, transponder stream 180-2 may be received. Television receiver150 may decode the received transponder streams. As such, depending onwhich television channels are desired to be presented or stored, varioustransponder streams from various satellites may be received,descrambled, and decoded by television receiver 150.

In FIG. 1 network 190 may serve as a secondary communication channelbetween television service provider system 110 and television receiver150. However, in many instances, television receiver 150 may bedisconnected from network 190 (for reasons such as because televisionreceiver 150 is not configured to connect to network 190 or a subscriberdoes not desire or cannot connect to network 190). As such, theconnection between network 190 and television receiver 150 isrepresented by a dotted line. Via such a secondary communicationchannel, bidirectional exchange of data may occur. As such, data may betransmitted to television service provider system 110 from televisionreceiver 150 via network 190. Data may also be transmitted fromtelevision service provider system 110 to television receiver 150 vianetwork 190. Network 190 may be the Internet. While audio and videoservices may be provided to television receiver 150 via satellites 130,feedback from television receiver 150 to television service providersystem 110 may be transmitted via network 190.

FIG. 2 illustrates an embodiment of television receiver 200. Televisionreceiver 200 may be configured generate and monitor a customizedchannel. Television receiver 200 may be in the form of a separate deviceconfigured to be connected with a display device, such as a television.Embodiments of television receiver 200 can include set top boxes (STBs).As previously noted, in addition to being in the form of an STB, atelevision receiver may be incorporated as part of another device, suchas a television or other form of display device. For example, atelevision may have an integrated television receiver (which does notinvolve an external STB being coupled with the television).

Television receiver 200 may represent television receiver 150 of FIG. 1and may be in the form of an STB that outputs video and/or audio to adisplay device, such as a television. Television receiver 200 may beincorporated as part of a television, such as display device 160 ofFIG. 1. Television receiver 200 may include: processors 210 (which mayinclude control processor 210-1 and possibly additional processors,tuners 215, network interface 220, non-transitory computer-readablestorage medium 225, electronic programming guide (EPG) database 230,television interface 235, networking information table (NIT) 240,digital video recorder (DVR) database 245 (which may includeprovider-managed television programming storage and/or user-definedtelevision programming), on-demand programming 227, user profiles 247,user interface 250, external storage device 252, smartcard 260, and/ordescrambling engine 265. In other embodiments of television receiver200, fewer or greater numbers of components may be present. It should beunderstood that the various components of television receiver 200 may beimplemented using hardware, firmware, software, and/or some combinationthereof. Functionality of components may be combined; for example,functions of descrambling engine 265 may be performed by tuningmanagement processor 210-2. Further, functionality of components may bespread among additional.

Processors 210 may include one or more specialized and/orgeneral-purpose processors configured to perform processes such astuning to a particular channel, accessing and displaying EPG informationfrom EPG database 230, and/or receiving and processing input from auser. For example, processors 210 may include one or more processorsdedicated to decoding video signals from a particular format, such asMPEG, for output and display on a television and for performingdecryption. It should be understood that the functions performed byvarious modules of FIG. 2 may be performed using one or more processors.As such, for example, functions of descrambling engine 265 may beperformed by control processor 210-1.

Control processor 210-1 may communicate with tuning management processor210-2. Control processor 210-1 may control the recording of televisionchannels based on timers stored in DVR database 245. Control processor210-1 may also provide commands to tuning management processor 210-2when recording of a television channel is to cease. In addition toproviding commands relating to the recording of television channels,control processor 210-1 may provide commands to tuning managementprocessor 210-2 that indicate television channels to be output todecoder module 233 for output to a display device. Control processor210-1 may also communicate with network interface 220 and user interface250. Control processor 210-1 may handle incoming data from networkinterface 220 and user interface 250. Additionally, control processor210-1 may be configured to output data via network interface 220.

Control processor 210-1 may include a customized channel engine 211. Thecustomized channel engine may interface with the EPG database 230,tuning management processor 210-2, DVR database 245, and the userprofiles 247 to identify user preferences and programming content basedon the user preferences. The customized channel engine may determinescheduling of programming content for the customized channel. Aprogramming schedule may be stored and maintained in the customizedchannel data 248 of the storage medium 225.

Tuners 215 may include one or more tuners used to tune to transpondersthat include broadcasts of one or more programming streams or televisionchannels. In the illustrated embodiment of television receiver 200,three tuners are present (tuner 215-1, tuner 215-2, and tuner 215-3). Inother embodiments, two or more than three tuners may be present, such asfour, six, or eight tuners. Each tuner contained in tuners 215 may becapable of receiving and processing a single transponder stream from asatellite transponder at a given time. As such, a single tuner may tuneto a single transponder stream at a given time. If tuners 215 includemultiple tuners, one tuner may be used to tune to a television channelon a first transponder stream for display using a television, whileanother tuner may be used to tune to a television channel on a secondtransponder for recording and viewing at some other time. If multipletelevision channels transmitted on the same transponder stream aredesired, a single tuner of tuners 215 may be used to receive the signalcontaining the multiple television channels for presentation and/orrecording. Tuners 215 may receive commands from tuning managementprocessor 210-2. Such commands may instruct tuners 215 which frequenciesare to be tuned to.

Network interface 220 may be used to communicate via an alternatecommunication channel with a television service provider, if suchcommunication channel is available. The primary communication channelmay be via satellite (which may be unidirectional to television receiver200) and the alternate communication channel (which may bebidirectional) may be via a network, such as the Internet. Referringback to FIG. 1, television receiver 150 may be able to communicate withtelevision service provider system 110 via a network, such as theInternet. This communication may be bidirectional: data may betransmitted from television receiver 150 to television service providersystem 110 and from television service provider system 110 to televisionreceiver 150. Referring back to FIG. 2, network interface 220 may beconfigured to communicate via one or more networks, such as theInternet, to communicate with television service provider system 110 ofFIG. 1. Information may be transmitted and/or received via networkinterface 220. For instance, instructions (e.g., regarding subscriptionportability) from a television service provider may also be received vianetwork interface 220, if connected with the Internet. Network interface220 may be used to provide a confirmation to a television serviceprovider that instructions received from the television service providerhave indeed been executed. Network interface may be used to accessprogramming content from the internet. Videos, audio, and other contentmay be accessed and received through the network interface and storedpresented for viewing. Although this document illustrates thecombination of satellite and internet networks, this is an example andother transmission systems can be combined, such as cable and internet.When combining content from different sources, the receiver may retrieveprogramming information from all these sources to build the EPG data forthe customized channel.

Storage medium 225 may represent one or more non-transitorycomputer-readable storage mediums. Storage medium 225 may include memoryand/or a hard drive. Storage medium 225 may be used to store informationreceived from one or more satellites and/or information received vianetwork interface 220. Storage medium 225 may store information relatedto EPG database 230, other non-video/audio data 231, DVR database 245,user profiles 247, programming preview database 248, and/or on-demandprogramming 227. Recorded television programs may be stored usingstorage medium 225 as part of DVR database 245. Storage medium 225 maybe partitioned or otherwise divided (such as into folders) such thatpredefined amounts of storage medium 225 are devoted to storage oftelevision programs recorded due to user-defined timers and storedtelevision programs recorded due to provider-defined timers.

EPG database 230 may store information related to television channelsand the timing of programs appearing on such television channels. EPGdatabase 230 may be stored using storage medium 225, which may be a harddrive. Information from EPG database 230 may be used to inform users ofwhat television channels or programs are popular and/or providerecommendations to the user. Information from EPG database 230 mayprovide the user with a visual interface displayed by a television thatallows a user to browse and select television channels and/or televisionprograms for viewing and/or recording. Information used to populate EPGdatabase 230 may be received via network interface 220 and/or viasatellites, such as satellites 130 of FIG. 1 via tuners 215. Forinstance, updates to EPG database 230 may be received periodically viasatellite. EPG database 230 may serve as an interface for a user tocontrol DVR functions of television receiver 200, and/or to enableviewing and/or recording of multiple television channels simultaneously.EPG data may be assembled for the customized channel allowing the userto view scheduled programming. EPG data for the customized channel maybe assembled from the EPG data of the scheduled programming. Informationabout videos and other content may also be queried from the internetusing search engines and assembled on the EPG.

The network information table (NIT) 240 may store information used bytelevision receiver 200 to access various television channels. NIT 240may be stored locally by a processor, such as tuning managementprocessor 210-2 and/or by storage medium 225. Information used topopulate NIT 240 may be received via satellite (or cable) through tuners215 and/or may be received via network interface 220 from the televisionservice provider. As such, information present in NIT 240 may beperiodically updated. In some embodiments, NIT 240 may be locally-storedby television receiver 200 using storage medium 225. Generally, NIT 240may store information about a service provider network, such as asatellite-based service provider network. Information that may bepresent in NIT 240 may include: television channel numbers, satelliteidentifiers (which may be used to ensure different satellites are tunedto for reception of timing signals), frequency identifiers and/ortransponder identifiers for various television channels. In someembodiments, NIT 240 may contain additional data or additional tablesmay be stored by the television receiver. For example, while specificaudio PIDs and video PIDs may not be present in NIT 240, a channelidentifier may be present within NIT 240 which may be used to look upthe audio PIDs and video PIDs in another table, such as a program maptable (PMT). In some embodiments, a PID associated with the data for thePMT is indicated in a separate table, program association table (PAT),which is not illustrated in FIG. 2. A PAT may be stored by thetelevision receiver in a similar manner to the NIT. For example, a PMTmay store information on audio PIDs, and/or video PIDs. A PMT storesdata on ECM (entitlement control message) PIDs for television channelsthat are transmitted on a transponder frequency. If, for a firsttelevision channel, multiple television channels are to be tuned to, NIT240 and/or PMT 257 may indicate a second television channel that is tobe tuned to when a first channel is tuned to.

Based on information in the NIT, it may be possible to determine theproper satellite and transponder to which to tune for a particulartelevision channel. In some embodiments, the NIT may list a particularfrequency to which to tune for a particular television channel. Oncetuned to the proper satellite/transponder/frequency, the PMT PID may beused to retrieve a program management table that indicates the PIDs foraudio and video streams of television channels transmitted by thattransponder.

While a large portion of storage space of storage medium 225 is devotedto storage of television programming, a portion may be devoted tostorage of non-audio/video data, such as EPG database 230 and othernon-video/audio data 231. This “other” data may permit televisionreceiver 200 to function properly. In some embodiments, at least tengigabytes are allocated to such other data. For example, if NIT 240 isstored by storage medium 225, it may be part of other non-video/audiodata 226.

User profiles 247 may include stored user preferences. For example, auser may specify a preferred category of television programming, suchas: sports, news, movies, sitcoms, reality, etc. The user may alsospecify whether they prefer broadcast (“live”) television, on-demandprogramming, or recorded television programming (via user or providerdefined timers). In some embodiments, data for a user's profile may bedefined based on measured viewing habits, such as which televisionchannels and/or categories of television programming does the userwatch. User profiles 247 may specify which television programs wererecorded based on timers set by the user associated with a specific userprofile. User profiles 247 may include profiles for multiple users ormay include a single profile for the television receiver in general. Insome embodiments, a user is permitted to select which user profile ofuser profiles 247 is active. User profiles may include preferences forcustomized channels programming. The user profiles may further includeuser feedback received from the user regarding programming on thecustomized channel. The feedback data may be used to refine theprogramming and schedule of the customized channel.

Decoder module 233 may serve to convert encoded video and audio into aformat suitable for output to a display device. For instance, Decodermodule 233 may receive MPEG video and audio from storage medium 225 ordescrambling engine 265 to be output to a television. MPEG video andaudio from storage medium 225 may have been recorded to DVR database 245as part of a previously-recorded television program. Decoder module 233may convert the MPEG video and audio into a format appropriate to bedisplayed by a television or other form of display device and audio intoa format appropriate to be output from speakers, respectively. Decodermodule 233 may have the ability to convert a finite number of televisionchannel streams received from storage medium 225 or descrambling engine265 simultaneously. For instance, each of decoders 234 within decodermodule 233 may be able to only decode a single television channel at atime. While decoder module 233 is illustrated as having three decoders234 (decoder 234-1, decoder 234-2, and decoder 234-3), in otherembodiments, a greater or fewer number of decoders may be present intelevision receiver 200. A decoder may be able to only decode a singlehigh definition television program at a time. However, a decoder may beable to decode multiple preview clips at the same time. Therefore, ifnine preview clips are being presented as tiles in a CVM simultaneously,only one or two decoders of decoders 234 may be necessary to decode theencoded preview clips.

Television interface 235 may serve to output a signal to a television(or another form of display device) in a proper format for display ofvideo and playback of audio. As such, television interface 235 mayoutput one or more television channels, stored television programmingfrom storage medium 225 (e.g., television programs from DVR database245, television programs from on-demand programming 230 and/orinformation from EPG database 230) to a television for presentation.

Digital Video Recorder (DVR) functionality may permit a televisionchannel to be recorded for a period of time. DVR functionality oftelevision receiver 200 may be managed by control processor 210-1.Control processor 210-1 may coordinate the television channel, starttime, and stop time of when recording of a television channel is tooccur. DVR database 245 may store information related to the recordingof television channels. DVR database 245 may store timers that are usedby control processor 210-1 to determine when a television channel shouldbe tuned to and its programs recorded to DVR database 245 of storagemedium 225. In some embodiments, a limited amount of storage medium 225may be devoted to DVR database 245. Timers may be set by the televisionservice provider and/or one or more users of television receiver 200.The DVR functionality may be used to buffer or record programmingcontent from television channels or other sources. Programming may betemporarily recorded and data stored in the DVR database 245.

User interface 250 may include a remote control (physically separatefrom television receiver 200) and/or one or more buttons on televisionreceiver 200 that allow a user to interact with television receiver 200.User interface 250 may be used to select a television channel forviewing, view information from EPG database 230, and/or program a timerstored to DVR database 245, wherein the timer is used to control the DVRfunctionality of control processor 210-1. In some embodiments, it may bepossible to load some or all of preferences to a remote control. Assuch, the remote control can serve as a backup storage device for thepreferences.

Referring back to tuners 215, television channels received via satellite(or cable) may contain at least some scrambled data. Packets of audioand video may be scrambled to prevent unauthorized users (e.g.,nonsubscribers) from receiving television programming without paying thetelevision service provider. When a tuner of tuners 215 is receivingdata from a particular transponder of a satellite, the transponderstream may be a series of data packets corresponding to multipletelevision channels. Each data packet may contain a packet identifier(PID), which, in combination with NIT 240 and/or PMT 257, can bedetermined to be associated with a particular television channel.Particular data packets, referred to as entitlement control messages(ECMs), may be periodically transmitted. ECMs may be associated withanother PID and may be encrypted; television receiver 200 may usedecryption engine 261 of smartcard 260 to decrypt ECMs. Decryption of anECM may only be possible if the user has authorization to access theparticular television channel associated with the ECM. When an ECM isdetermined to correspond to a television channel being stored and/ordisplayed, the ECM may be provided to smartcard 260 for decryption.

When smartcard 260 receives an encrypted ECM, smartcard 260 may decryptthe ECM to obtain some number of control words. In some embodiments,from each ECM received by smartcard 260, two control words are obtained.In some embodiments, when smartcard 260 receives an ECM, it compares theECM to the previously received ECM. If the two ECMs match, the secondECM is not decrypted because the same control words would be obtained.In other embodiments, each ECM received by smartcard 260 is decrypted;however, if a second ECM matches a first ECM, the outputted controlwords will match; thus, effectively, the second ECM does not affect thecontrol words output by smartcard 260. Smartcard 260 may be permanentlypart of television receiver 200 or may be configured to be inserted andremoved from television receiver 200.

Tuning management processor 210-2 may be in communication with tuners215 and control processor 210-1. Tuning management processor 210-2 maybe configured to receive commands from control processor 210-1. Suchcommands may indicate when to start/stop recording a television channeland/or when to start/stop causing a television channel to be output to atelevision. Tuning management processor 210-2 may control tuners 215.Tuning management processor 210-2 may provide commands to tuners 215that instruct the tuners which satellite, transponder, and/or frequencyto tune to. From tuners 215, tuning management processor 210-2 mayreceive transponder streams of packetized data. As previously detailed,some or all of these packets may include a PID that identifies thecontent of the packet.

Tuning management processor 210-2 may be configured to create one ormore PID filters 255 that sort packets received from tuners 215 based onthe PIDs. When a tuner is initially tuned to a particular frequency(e.g., to a particular transponder of a satellite), a PID filter may becreated based on the PMT data. The PID created, based on the PMT datapackets, may be known because it is stored as part of NIT 240 or anothertable, such as a program association table (PAT). From the PMT datapackets, PMT may be constructed by tuning management processor 210-2.

PID filters 255 may be configured to filter data packets based on PIDs.In some embodiments, PID filters 255 are created and executed by tuningmanagement processor 210-2. For each television channel to be output forpresentation or recorded, a separate PID filter may be configured. Inother embodiments, separate hardware may be used to create and executesuch PID filters. Depending on a television channel selected forrecording/viewing, a PID filter may be created to filter the video andaudio packets associated with the television channel (based on the PIDassignments present in PMT 257). For example, if a transponder datastream includes multiple television channels, data packets correspondingto a television channel that is not desired to be stored or displayed bythe user may be ignored by PID filters 255. As such, only data packetscorresponding to the one or more television channels desired to bestored and/or displayed may be filtered and passed to eitherdescrambling engine 265 or smartcard 260; other data packets may beignored. For each television channel, a stream of video packets, astream of audio packets (one or both of the audio programs) and/or astream of ECM packets may be present, each stream identified by a PID.In some embodiments, a common ECM stream may be used for multipletelevision channels. Additional data packets corresponding to otherinformation, such as updates to NIT 240, may be appropriately routed byPID filters 255. At a given time, one or multiple PID filters may beexecuted by tuning management processor 210-2. Similar to a PID filterbeing created for a particular television channel, a PID filter may becreated for timing signals for use in determining the location of thetelevision receiver.

Descrambling engine 265 may use the control words output by smartcard260 in order to descramble video and/or audio corresponding totelevision channels for storage and/or presentation. Video and/or audiodata contained in the transponder data stream received by tuners 215 maybe scrambled. Video and/or audio data may be descrambled by descramblingengine 265 using a particular control word. Which control word output bysmartcard 260 to be used for successful descrambling may be indicated bya scramble control identifier present within the data packet containingthe scrambled video or audio. Descrambled video and/or audio may beoutput by descrambling engine 265 to storage medium 225 for storage (inDVR database 245) and/or to decoder module 233 for output to atelevision or other presentation equipment via television interface 235.

External storage device 252 may represent an external, detachablecomputer-readable non-transitory storage device. The storage device maybe memory, a hard drive, or some other type of device for storingcomputer-readable data. The user may be permitted to connect anddisconnect external storage device 252 to increase and decrease anamount of storage space available for storing on-demand programming,service provider-managed television programming, and/or user managedtelevision programming.

For simplicity, television receiver 200 of FIG. 2 has been reduced to ablock diagram; commonly known parts, such as a power supply, have beenomitted. Further, some routing between the various modules of televisionreceiver 200 has been illustrated. Such illustrations are for exemplarypurposes only. The state of two modules not being directly or indirectlyconnected does not indicate the modules cannot communicate. Rather,connections between modules of the television receiver 200 are intendedonly to indicate possible common data routing. It should be understoodthat the modules of television receiver 200 may be combined into a fewernumber of modules or divided into a greater number of modules. Further,the components of television receiver 200 may be part of another device,such as built into a television. Television receiver 200 may include oneor more instances of various computerized components, such as disclosedin relation to computer system 800 of FIG. 8.

FIG. 3 illustrates an embodiment of a scheduling scenario for acustomized channel. A customized channel may include programming contentfrom one or more different sources which may include recorded DVRcontent 302, content from the internet 304, and/or content from one ormore television channels (Channel A, Channel B). A customized channelmay have multiple time slots 306, 308, 310, 312, 314 that may be filledwith programming content tailored to a user's interest, preferences,and/or viewing habits. Available programming content may include variousformats, genres, types, and origins of programming. The availableprogramming content may be parsed, the data or metadata describing theprogramming may be compared or searched for specific words, descriptionsand/or identifiers to determine if the programming matches interests orpreferences of the user. For example, if the user has a preference forcomedy, the customized channel may be created for programming related tocomedy.

In another example, the user's programming viewing habits may be used todetermine the user's programming preferences. In some embodiments,programming that a user watches/records in its entirety may beautomatically considered preferred programming. Based on thecharacteristics of watched programming (genre, actors, director, countryof origin, etc.), the STB may assign points to each characteristicdepending on how many of each type of programming the user watched. Forexample, if a user watched four comedies in the last week, the genrecategory may be assigned four points. If the user watched three moviesby a specific director (director A) than the director may be assignedthree points. The points may be used to determine preferred programmingfor the user. For each potential programming that may be scheduled forthe customized channel, the point totals for each programming may betotaled according to all the characteristics. Programming that is acomedy may be assigned four points. A comedy with director A mayassigned 7 points. The programming may be ranked according to the pointtotals and the programming with the highest scores scheduled for thecustomized channel. Prime time slots may be assigned to programming withthe highest score. In some situations a customized channel can indicatethat programming in a specific time period (e.g. between 6 PM and 9 PM)be automatically recorded for the user.

Programming may be ranked or scored according to popularity with otherusers or preference of other users. In some embodiments the time slotsof the customized channel may include constraints or rankings. For sometime slots, for example, the user may specify that only a specificprogramming be shown. Some time slots may be viewed more often by theuser and may be ranked higher than less viewed time slots. For examplethe first time slot 306 at 1 PM may be ranked lower than the last timeslot 314 since the user may typically be at work and unable to view theprogramming scheduled for the first time slot. Ranking of time slots maybe useful for determining which programming should be scheduled forwhich time slot. In some embodiments, the highest ranked programming maybe preferably scheduled for the highest ranked time slots.

Identified programming may be scheduled for viewing for the customizedchannel. In some cases programming that is available from anotherchannel may be viewable via the customized channel during the same timeslot as originally aired. For example, Comedy 1, may be scheduled forthe same time slot 306 on the customized channel as it would appear onthe original channel, Channel A. During time slot 306, the STB mayreceive the programming from Channel A and make the Comedy 1 programmingviewable via the customized channel.

In some cases programming from on-demand sources such as the DVR 302, orinternet sources 304 may be played or retrieved on-demand and scheduled.For example, during the second time slot 308, the programming contentmay be received from the internet 304 displayed to the user.

In some cases, programming for the customized channel may be scheduledfor a different time slot than originally aired. For example,programming scheduled for the 310 time slot may originally air at adifferent time. In order to make the programming available for viewingfor time slot 310 (Cartoons 2), the programming may need to be recordedduring its original air time such that it can be played back during thescheduled time slot. In the example of FIG. 4, Cartoons 2 programmingmay be recorded to the DVR 302 during its original on-air time onChannel B. During time slot 310 of the customized channel, the Cartoons2 programming may be played back from the DVR 302 for viewing. AfterCartoons 2 programming is viewed the programming may be deleted from theDVR 302.

In the example schedule of the customized channel in FIG. 3, a user mayaccess programming related to comedy from one customized channel withouthaving to change channels, or navigate or search for content.

The content scheduled for the customized channel may be adaptable andtake into account a user's changing interest or viewing habits during aday, week, or the year. A customized channel's programming content typemay change according to a user's preference. One type of programmingcontent may be scheduled for some time slots while different types ofprogramming content are scheduled for other time slots. For example, theprogramming scheduled for the customized channel in FIG. 3 may changefrom cartoons and comedy in time slots 306, 308, 310, 312 to programmingcontent related to news in time slot 314.

In embodiments, the timing or programming type changes, the preferencesof the user may be refined with user feedback. User feedback may beprovided by the user for each time slot. The user may provide ratings ofthe scheduled programming, thumbs up or down, or other indication.

In some embodiments, the timing or programming type changes may berefined by presenting the user with two or more options for programmingon the same time slot. In some embodiments, two or more programmingcontent options may be scheduled for one time slot as depicted in FIG.4. For time slot 312 two programming contents are scheduled. Theprogramming content may be selected to determine a user preference orviewing habit based on the choice the user makes between the content.For example, in FIG. 4 one of the programming content is news related(News 4) and the other is a comedy (Comedy 4). During the start of thetime slot 312, the user may be prompted to choose between the twoprogramming options. Based on the selection, user preferences and theschedule of the customized channel may be refined. In the example shownin FIG. 4, a user selection of the News 4 programming may indicate thatthe user may prefer to view news related programming during these timeslots and the transition from comedy programming to news programming maybe scheduled for time slot 312.

In some embodiments, a user can view the custom channel's schedule inthe EPG. If the user wishes to view a program that is scheduled for afuture time, and the program is DVRed or may be streamed from anavailable source, the user will be offered the option to view theprogram immediately.

FIG. 5A illustrates an embodiment of a method 500 for generating aschedule for a customized channel. Method 500 may be performed using thesystems previously described. For instance, satellite televisiondistribution system 100, television receiver 200, and/or customizedchannel engine 211 of FIGS. 1-2, respectively, may be used to performmethod 500. Components of such systems may be implemented usinghardware, software, and/or firmware. Further, the performance of method500 may include one or more instances of the components of computersystem 800 of FIG. 8.

At step 502 user preferences may be determined. Preferences may bespecified directly by the user. The user may define the genre,programming types, specific shows, actors, sources of programming,exclusions to programming, and/or the like. User preferences may bedetermined from the user profile and/or other sources.

At step 504, programming may be identified based on the determined userpreferences. When available, programming may be identified from multiplesources including broadcast stations, satellite stations, recordedprogramming, on-demand programming, content from the internet, and/orthe like. Programs may be identified from EPG data, metadata, data fromwebsites, and/or other sources. At step 506, the identified programmingmay be ranked according to the relevance to the user's preferences. Theprogramming may be ranked or scored according the user preferences. Atstep 508, time slots of the customized channel may be ranked or scored.The time slots may be ranked according to frequency which the userwatches programming during the time slot.

In step 510, scheduling constraints may be identified. Constraints maybe related to equipment constraints, for example. Limited storagecapability of the DVR of the STB may limit how much of the programmingmay be buffered or scheduled for different time slots than originallyaired. In step 512, the programming schedule for the customized channelmay be determined based on the rankings of the identified programming,ranking of the time slots, and the scheduling constraints.

FIG. 5B illustrates another embodiment of a method 520 for generating aschedule for a customized channel. Method 520 may be performed using thesystems previously described. At step 522 programming schedulingconstraints may be identified. The constraints may be specified directlyby the user or determined based on the capabilities of the STB, userhabits, and the like. Constraints such as available memory forprerecording may be evaluated. In step 524 primary programming sourcesmay be identified based on user preferences. The user preferences maylimit preferred sources of programming to high-definition channels, DVRcontent, or premium channels. At step 526, the programming fromidentified sources may be ranked according to the relevance to theuser's preferences. At step 528, time slots of the customized channelmay be ranked or scored. The time slots may be ranked according tofrequency which the user watches programming during the time slot. Instep 530 a programming schedule may be determined. The schedule may bedetermined to meet the constraints and based on the ranking of theprogramming and time slots. In some cases the available programming maybe sufficient to meet the constraints and the determined programmingscheduled in step 532 for the customized channel.

In some cases the identified sources may be insufficient for arranging aschedule that meets the constraints. In such cases secondary programmingsources may be identified in step 534. The secondary programming sourcesmay be automatically identified based on their similarity to the primarysources. In some embodiments the user may specify a list of primary andsecondary sources. In step 536 the programming schedule for thecustomized channel may again be determined based on programming from theprimary and secondary sources. If the new schedule meets the constraintsthe programming may be scheduled for the customized channel in step 538.If the schedule still does not meet the constraints the constraints maybe relaxed in step 540 and the method restarted from step 522. Theconstraints may be automatically relaxes by the system or the user maybe prompted to manually change the constraint setting.

FIG. 6 illustrates an embodiment of a method for identifying programmingfor a customized channel based on viewing habits of the user. Method 600may be performed using the systems previously described. For instance,satellite television distribution system 100 of FIG. 1 may be used toperform method 600. Components of such systems may be implemented usinghardware, software, and/or firmware. Further, the performance of method600 may include one or more instances of the components of computersystem 800 of FIG. 8.

At step 602, the STB may monitor the viewing habits of the user. In step604, programming that the user watches to completion may be tracked aspotentially programming that the user has an interest in and may be theuser's preferred programming. In step 606 the characteristics of thewatched programming may be identified. Characteristics such as the genreof the programming, the actors, producers, directors, country or origin,and or the like may be determined. The STB may track how many times perweek or per month programming with a specific characteristic have beenwatched by the user. In step 608 the STB may maintain a table ofcharacteristics and the frequency with which these characteristics wereidentified in the watched programming.

In step 610, the customized channel engine may use the table ofcharacteristic scores and identify potential programming for thecustomized channel. For each new potential programming, characteristicsof the programming may be identified and the score for eachcharacteristic may be determined from each table. A sum for all of thecharacteristic scores for each programming may be determined.Programming with a higher score may generally have characteristicssimilar to those the user watches frequently. In step 612 theprogramming with the highest scores may be identified for scheduling.

In some embodiments the user may be provided with a human-readablerepresentation of scores, tables, preferences, and/or decision diagramsused to determine preferred programming and scheduling for thecustomized channel. The user may be allowed to edit or modify the dataor generated scores. The user may be able to edit the scores and viewthe changes to the scheduled programming in real-time. Therepresentation may be editable via the television receiver. In somecases the representation may be editable via a computer capable ofcommunicating to the receiver. In some embodiments the user may specifyrestrictions and filters as to what data, scores, types of programming,viewing habits, and the like may be tracked or used for scoring.

FIG. 7A illustrates an embodiment of a method 700 for determining userpreferences by presenting to the user alternative programming. Method700 may be performed using the systems previously described. Forinstance, satellite television distribution system 100, televisionreceiver 200, and/or programming disruption analysis engine 211 of FIGS.1-2, respectively, may be used to perform method 700. Components of suchsystems may be implemented using hardware, software, and/or firmware.Further, the performance of method 700 may include one or more instancesof the components of computer system 800 of FIG. 8.

At step 702 user preferences for programming may be identified and atstep 704 programming based on user preferences may be determined andscheduled for the customized channel in step 706. In step 708,additional programming may be scheduled for some time slots of thecustomized channel. The additional programming may be scheduled suchthat at least one time slot has two or more different programmingscheduled. The additional programming may be one of the previouslyidentified programming content that matched the user preferences or itmay be new or different programming the user has not seen. When the timeslot with more than one scheduled programming is active, in step 710, achoice between the programming may be presented to the user. The usermay select one of the programming for viewing on the customized channel.In step 712, based on the selection between the different programming,inferences made about the user's preferences may be determined and theuser's preferences updated.

FIG. 7B illustrates an embodiment of a method 720 for resolvinguncertainties in programming preferences of a user. Method 720 may beperformed using the systems previously described. At step 722 userpreferences for programming for a time slot may be identified. At step724 programming preference uncertainties may be determined. For example,based on the viewing habits of the user it may be unclear what type ofprogramming the user may prefer to watch during the time slot. If nouncertainties are identified, the programming according to thepreferences may be identified in step 736 and one of the programming maybe scheduled for the time slot in step 738. In some cases uncertainty inprogramming preferences may be identified. In some cases more than onetype of programming may match the user preferences for the time slot.The programming that matches the user preferences may be identified instep 726 and in step 728 the programming may be categorized based on thetype. In step 730 one of each programming content type may be scheduledfor the time slot such that there are at least two programs scheduled.When the time slot is active, in step 732, a selection choice betweenthe programming may be presented to the user. The user may select one ofthe programming for viewing on the customized channel. In step 734,based on the selection between the different programming, inferencesmade about the user's preferences may be determined and the user'spreferences updated.

A computer system as illustrated in FIG. 8 may be incorporated as partof the previously described computerized devices, such as the describedtelevision receivers and television distribution system. FIG. 8 providesa schematic illustration of one embodiment of a computer system 800 thatcan perform various steps of the methods provided by variousembodiments. It should be noted that FIG. 8 is meant only to provide ageneralized illustration of various components, any or all of which maybe utilized as appropriate. FIG. 8, therefore, broadly illustrates howindividual system elements may be implemented in a relatively separatedor relatively more integrated manner.

The computer system 800 is shown comprising hardware elements that canbe electrically coupled via a bus 805 (or may otherwise be incommunication, as appropriate). The hardware elements may include one ormore processors 810, including without limitation one or moregeneral-purpose processors and/or one or more special-purpose processors(such as digital signal processing chips, graphics accelerationprocessors, video decoders, and/or the like); one or more input devices815, which can include without limitation a mouse, a keyboard, remotecontrol, and/or the like; and one or more output devices 820, which caninclude without limitation a display device, a printer, and/or the like.

The computer system 800 may further include (and/or be in communicationwith) one or more non-transitory storage devices 825, which cancomprise, without limitation, local and/or network accessible storage,and/or can include, without limitation, a disk drive, a drive array, anoptical storage device, a solid-state storage device, such as a randomaccess memory (“RAM”), and/or a read-only memory (“ROM”), which can beprogrammable, flash-updateable and/or the like. Such storage devices maybe configured to implement any appropriate data stores, includingwithout limitation, various file systems, database structures, and/orthe like.

The computer system 800 might also include a communications subsystem830, which can include without limitation a modem, a network card(wireless or wired), an infrared communication device, a wirelesscommunication device, and/or a chipset (such as a Bluetooth™ device, an802.11 device, a WiFi device, a WiMax device, cellular communicationdevice, etc.), and/or the like. The communications subsystem 830 maypermit data to be exchanged with a network (such as the networkdescribed below, to name one example), other computer systems, and/orany other devices described herein. In many embodiments, the computersystem 800 will further comprise a working memory 835, which can includea RAM or ROM device, as described above.

The computer system 800 also can comprise software elements, shown asbeing currently located within the working memory 835, including anoperating system 840, device drivers, executable libraries, and/or othercode, such as one or more application programs 845, which may comprisecomputer programs provided by various embodiments, and/or may bedesigned to implement methods, and/or configure systems, provided byother embodiments, as described herein. Merely by way of example, one ormore procedures described with respect to the method(s) discussed abovemight be implemented as code and/or instructions executable by acomputer (and/or a processor within a computer); in an aspect, then,such code and/or instructions can be used to configure and/or adapt ageneral purpose computer (or other device) to perform one or moreoperations in accordance with the described methods.

A set of these instructions and/or code might be stored on anon-transitory computer-readable storage medium, such as thenon-transitory storage device(s) 825 described above. In some cases, thestorage medium might be incorporated within a computer system, such ascomputer system 800. In other embodiments, the storage medium might beseparate from a computer system (e.g., a removable medium, such as acompact disc), and/or provided in an installation package, such that thestorage medium can be used to program, configure, and/or adapt a generalpurpose computer with the instructions/code stored thereon. Theseinstructions might take the form of executable code, which is executableby the computer system 800 and/or might take the form of source and/orinstallable code, which, upon compilation and/or installation on thecomputer system 800 (e.g., using any of a variety of generally availablecompilers, installation programs, compression/decompression utilities,etc.), then takes the form of executable code.

It will be apparent to those skilled in the art that substantialvariations may be made in accordance with specific requirements. Forexample, customized hardware might also be used, and/or particularelements might be implemented in hardware, software (including portablesoftware, such as applets, etc.), or both. Further, connection to othercomputing devices such as network input/output devices may be employed.

As mentioned above, in one aspect, some embodiments may employ acomputer system (such as the computer system 800) to perform methods inaccordance with various embodiments of the invention. According to a setof embodiments, some or all of the procedures of such methods areperformed by the computer system 800 in response to processor 810executing one or more sequences of one or more instructions (which mightbe incorporated into the operating system 840 and/or other code, such asan application program 845) contained in the working memory 835. Suchinstructions may be read into the working memory 835 from anothercomputer-readable medium, such as one or more of the non-transitorystorage device(s) 825. Merely by way of example, execution of thesequences of instructions contained in the working memory 835 mightcause the processor(s) 810 to perform one or more procedures of themethods described herein.

The terms “machine-readable medium,” “computer-readable storage medium”and “computer-readable medium,” as used herein, refer to any medium thatparticipates in providing data that causes a machine to operate in aspecific fashion. These mediums may be non-transitory. In an embodimentimplemented using the computer system 800, various computer-readablemedia might be involved in providing instructions/code to processor(s)810 for execution and/or might be used to store and/or carry suchinstructions/code. In many implementations, a computer-readable mediumis a physical and/or tangible storage medium. Such a medium may take theform of a non-volatile media or volatile media. Non-volatile mediainclude, for example, optical and/or magnetic disks, such as thenon-transitory storage device(s) 825. Volatile media include, withoutlimitation, dynamic memory, such as the working memory 835.

Common forms of physical and/or tangible computer-readable mediainclude, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, or any other magnetic medium, a CD-ROM, any other opticalmedium, any other physical medium with patterns of marks, a RAM, a PROM,EPROM, a FLASH-EPROM, any other memory chip or cartridge, or any othermedium from which a computer can read instructions and/or code.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to the processor(s) 810for execution. Merely by way of example, the instructions may initiallybe carried on a magnetic disk and/or optical disc of a remote computer.A remote computer might load the instructions into its dynamic memoryand send the instructions as signals over a transmission medium to bereceived and/or executed by the computer system 800.

The communications subsystem 830 (and/or components thereof) generallywill receive signals, and the bus 805 then might carry the signals(and/or the data, instructions, etc. carried by the signals) to theworking memory 835, from which the processor(s) 810 retrieves andexecutes the instructions. The instructions received by the workingmemory 835 may optionally be stored on a non-transitory storage device825 either before or after execution by the processor(s) 810.

It should further be understood that the components of computer system800 can be distributed across a network. For example, some processingmay be performed in one location using a first processor while otherprocessing may be performed by another processor remote from the firstprocessor. Other components of computer system 800 may be similarlydistributed. As such, computer system 800 may be interpreted as adistributed computing system that performs processing in multiplelocations. In some instances, computer system 800 may be interpreted asa single computing device, such as a distinct laptop, desktop computer,or the like, depending on the context.

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process which is depicted asa flow diagram or block diagram. Although each may describe theoperations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be rearranged. A process may have additional steps notincluded in the figure. Furthermore, examples of the methods may beimplemented by hardware, software, firmware, middleware, microcode,hardware description languages, or any combination thereof. Whenimplemented in software, firmware, middleware, or microcode, the programcode or code segments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the invention.Also, a number of steps may be undertaken before, during, or after theabove elements are considered.

What is claimed is:
 1. A method for scheduling programming content, themethod comprising: determining a programming preference of a user;identifying a set of programming content from one or more programmingsources based on the programming preference of the user; scheduling theset of programming content for viewing on a customized channel;scheduling additional programming content for a particular time slot ofthe customized channel available at a particular time, wherein thescheduling is configured to maximize a user enjoyment score, and whereinthe user enjoyment score is computed based on a combination of a scoreassigned to each scheduled programming content and a score assigned toeach time slot of the customized channel; presenting the customizedchannel to the user for viewing as a listing in an electronicprogramming guide, wherein the particular time slot displays at leasttwo scheduled programs including the additional programming content onthe customized channel listing of the electronic programming guide; uponoccurrence of the particular time, during presentation of content fromthe customized channel, presenting a notification to the user to selectone of the at least two scheduled programs for viewing; receiving, fromthe user, in response to presenting the notification, an indication toselect one program from the at least two scheduled programs for viewingduring the particular time slot of the customized channel; displayingthe selected one program for viewing by the user; and updating theprogramming preference based on the indication.
 2. The method of claim1, wherein the customized channel is a channel not previously available.3. The method of claim 2, wherein the customized channel is onlyavailable to the user.
 4. The method of claim 1, wherein the at leasttwo scheduled programs include programming content of two differenttypes.
 5. The method of claim 1, wherein at least one time slot is at atime of day when the programming preference of the user indicates anuncertainty in a type of programming content.
 6. The method of claim 1,wherein at least one time slot includes programming content that israndomly selected by a television receiver.
 7. The method of claim 1,wherein the scheduling is further based on equipment constraintsincluding storage capability of a digital video recorder (DVR).
 8. Themethod of claim 1, further comprising receiving an edit to a scoreassigned to one scheduled item of programming content on the customizedchannel.
 9. The method of claim 8, further comprising, in response toreceiving the edit, changing at least one scheduled item of programmingcontent on the customized channel to another item of programming contentin real-time.
 10. A television receiver configured to output acustomized channel, the television receiver comprising: a tunerconfigured to receive programming content; a channel engine configuredto schedule programming content for the customized channel; one or moreprocessors; and a non-transitory computer-readable storage mediumcommunicatively coupled with and readable by the one or more processorsand having stored therein processor-readable instructions which, whenexecuted by the one or more processors, cause the one or more processorsto: determine a programming preference of a user; identify a set ofprogramming content from one or more programming sources based at leastin part on the programming preference of the user; schedule, using thechannel engine, the set of programming content for viewing on thecustomized channel; schedule, using the channel engine, additionalprogramming content for a particular time slot of the customized channelavailable at a particular time, wherein the scheduling is configured tomaximize a user enjoyment score, and wherein the user enjoyment score iscomputed based on a combination of a score assigned to each scheduledprogramming content and a score assigned to each time slot of thecustomized channel; present the customized channel to the user forviewing as a listing in an electronic programming guide, wherein theparticular time slot displays at least two scheduled programs includingthe additional programming content on the customized channel listing ofthe electronic programming guide; upon occurrence of the particulartime, during presentation of content from the customized channel,present a notification to the user to select one of the at least twoscheduled programs for viewing; receive, from the user, in response topresenting the notification, an indication to select one program fromthe at least two scheduled programs for viewing during the particulartime slot of the customized channel; display the selected one programfor viewing by the user; and update the programming preference based onthe indication.
 11. The television receiver of claim 10, wherein thecustomized channel is a channel not previously available.
 12. Thetelevision receiver of claim 11, wherein the customized channel is onlyavailable to the user.
 13. The television receiver of claim 10, whereinthe at least two scheduled programs include programming content of atleast two different types.
 14. The television receiver of claim 10,wherein at least one time slot is at a time of day when the programmingpreference of the user indicates an uncertainty in a type of programmingcontent.
 15. The television receiver of claim 10, wherein at least onetime slot includes programming content that is randomly selected by thetelevision receiver.
 16. A non-transitory processor-readable medium forscheduling programming content comprising processor-readableinstructions configured to cause one or more processors to: determine aprogramming preference of a user; identify a set of programming contentfrom one or more programming sources based at least in part on theprogramming preference of the user; schedule the set of programmingcontent for viewing on a customized channel; schedule additionalprogramming content for a particular time slot of the customized channelavailable at a particular time, wherein the scheduling is configured tomaximize a user enjoyment score, and wherein the user enjoyment score iscomputed based on a combination of a score assigned to each scheduledprogramming content and a score assigned to each time slot of thecustomized channel; present the customized channel to the user forviewing as a listing in an electronic programming guide, wherein theparticular time slot displays at least two scheduled programs includingthe additional programming content on the customized channel listing ofthe electronic programming guide; upon occurrence of the particulartime, during presentation of content from the customized channel,present a notification to the user to select one of the at least twoscheduled programs for viewing receive, from the user, in response topresenting the notification, an indication to select one program fromthe at least two scheduled programs for viewing during the particulartime slot of the customized channel; display the selected one programfor viewing by the user; and update the programming preference based onthe indication.
 17. The non-transitory processor-readable medium forscheduling programming content of claim 16, wherein the customizedchannel is a channel not previously available.
 18. The non-transitoryprocessor-readable medium for scheduling programming content of claim17, wherein the customized channel is only available to the user. 19.The non-transitory processor-readable medium for scheduling programmingcontent of claim 16, wherein the at least two scheduled programs includeprogramming content of at least two different types.
 20. Thenon-transitory processor-readable medium for scheduling programmingcontent of claim 16, wherein at least one time slot is at a time of daywhen the programming preference of the user indicates an uncertainty ina type of programming content.